<template>
<header id="head_top">
  <slot name="logo"></slot>
  <slot name="search"></slot>
  <section class="head_goback" v-if="goBack" @click="$router.go(-1)">
    <svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" version="1.1">
      <polyline points="12,18 4,9 12,0" style="fill:none;stroke:rgb(255,255,255);stroke-width:2"/>
    </svg>
  </section>
  <router-link :to="USERINFO? '/profile':'/login'" v-if="signinUp" class="head_login">
    <svg class="user_avatar" v-if="USERINFO">
      <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#user"></use>
    </svg>
    <span class="login_span" v-else>登录|注册</span>
  </router-link>
  <section class="title_head ellipsis" v-if="headTitle">
    <span class="title_text">{{headTitle}}</span>
  </section>
  <slot name="edit"></slot>
  <slot name="msite-title"></slot>
  <slot name="changecity"></slot>
  <slot name="changeLogin"></slot>
</header>
</template>

<script type="text/ecmascript-6">
  import {mapGetters , mapActions,mapMutations} from 'vuex'
  import {getUser} from '../../service/getData'
export default {
  data(){
    return{
/*      userInfo:'',*/
      USERINFO:''
    }
  },
  created(){
    //模拟数据
    /*  this.userInfo = getUser;*/
   //this.userInfo = getUser();
  this.initUserInfo();
  },
  props:{
    signinUp:{
      type:String,
      default:''
    },
    goBack:{
      type: Boolean,
      default: false
    },
    headTitle:{
      type:String,
      default:''
    }
  },
  computed: {
   ...mapGetters ([
      'userInfo'
    ])
  },
  mounted(){
      this.getUserInfo();
  },
  methods:{
    ...mapMutations(['GET_USERINFO']),
    ...mapActions([
      'getUserInfo'
    ]),
   async initUserInfo(){
     // 优化，如果能从vuex中拿到则不需要重新发起请求
     this.USERINFO = this.userInfo;
     if( this.USERINFO){
       this.GET_USERINFO(this.USERINFO)
     }else{
       this.USERINFO =await  getUser();
       this.GET_USERINFO(this.USERINFO)
     }
   }
  }
/*  props: ['signinUp', 'headTitle', 'goBack'],*/
}
</script>
<style lang="scss" scoped>
  @import '../../style/mixin';

  #head_top{
    background-color: $blue;
    position: fixed;
    z-index: 100;
    margin-bottom: 1rem;
    left: 0;
    top: 0;
    @include wh(100%, 1.95rem);
  }
  .head_goback{
    left: 0.4rem;
    @include wh(0.6rem, 1rem);
    line-height: 2.6rem;
    margin-left: .4rem;
  }
  .head_login{
    right: 0.55rem;
    @include sc(0.65rem, #fff);
    @include ct;
    .login_span{
      color: #fff;
    }
    .user_avatar{
      fill: #fff;
      @include wh(.8rem, .8rem);
    }
  }
  .title_head{
    @include center;
    width: 50%;
    color: #fff;
    text-align: center;
    .title_text{
      @include sc(0.8rem, #fff);
      text-align: center;
      font-weight: bold;
    }
  }
</style>
